package com.dragon.modules.yuegou.entity.member;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.member.MemberGender;
import com.dragon.modules.yuegou.enums.member.MemberSource;
import com.dragon.modules.yuegou.enums.member.MemberStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 会员信息实体类<br>
 * 对应的表为：mem_member<br>
 * 
 * @author pbuilder generated
 * @date 2019-03-20 10:13:14
 * @company sgy
 * @version 2.0
 */
@TableName("mem_member")
@ApiModel(description = "会员信息")
public class MemberEntity {

    /**  */
	protected String id;

    /** 登录用户名(外部用户自动生成用户信息时使用) */
	@ApiModelProperty("登录用户名(外部用户自动生成用户信息时使用)")
	protected String loginName;

    /** 绑定的手机号码 */
	@ApiModelProperty(value = "绑定的手机号码", required = true)
	protected String mobile;

    /** 密码 */
	@ApiModelProperty(value = "密码", required = true)
	protected String password;

    /** 昵称 */
	@ApiModelProperty("昵称")
	protected String nickName;

    /** 头像地址 */
	@ApiModelProperty("头像地址")
	protected String headImg;

    /**  */
	protected Integer headLevel;

    /** 真实姓名 */
	@ApiModelProperty("真实姓名")
	protected String realName;

    /** [枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE */
	@ApiModelProperty("[枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE")
	protected MemberGender gender;

    /**  */
	protected LocalDate birthDate;

    /** 年龄段 */
	@ApiModelProperty("年龄段")
	protected String ageGroup;

    /** [枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ */
	@ApiModelProperty("[枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ")
	protected MemberSource source;

    /** [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED */
	@ApiModelProperty("[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED")
	protected MemberStatus status;

    /** 签名 */
	@ApiModelProperty("签名")
	protected String signature;

    /** 城市编码 */
	@ApiModelProperty("城市编码")
	protected String cityCode;

    /** 地址 */
	@ApiModelProperty("地址")
	protected String address;

    /** 极光推送用户ID */
	@ApiModelProperty("极光推送用户ID")
	protected String jpushRegId;

    /**  */
	protected LocalDateTime createdTime;

    /**  */
	protected String createdBy;

    /**  */
	protected LocalDateTime modifiedTime;

    /**  */
	protected String modifiedBy;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /**  */
	protected String delBy;

    /**  */
	protected LocalDateTime delTime;

	/**
	 * 构造一个空会员信息实体对象
	 */
	public MemberEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个会员信息实体对象
	 * 
	 * @param other 其它对象
	 */
	public MemberEntity(MemberEntity other){
		super();
     	this.id = other.id;
     	this.loginName = other.loginName;
     	this.mobile = other.mobile;
     	this.password = other.password;
     	this.nickName = other.nickName;
     	this.headImg = other.headImg;
     	this.headLevel = other.headLevel;
     	this.realName = other.realName;
     	this.gender = other.gender;
     	this.birthDate = other.birthDate;
     	this.ageGroup = other.ageGroup;
     	this.source = other.source;
     	this.status = other.status;
     	this.signature = other.signature;
     	this.cityCode = other.cityCode;
     	this.address = other.address;
     	this.jpushRegId = other.jpushRegId;
     	this.createdTime = other.createdTime;
     	this.createdBy = other.createdBy;
     	this.modifiedTime = other.modifiedTime;
     	this.modifiedBy = other.modifiedBy;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
	}


	/**
	 * 获取
	 * 
	 * @return id 
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置
	 * 
	 * @param id 
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取登录用户名(外部用户自动生成用户信息时使用)
	 * 
	 * @return loginName 登录用户名(外部用户自动生成用户信息时使用)
	 */
	public String getLoginName() {
		return loginName;
	}
  	
	/**
	 * 设置登录用户名(外部用户自动生成用户信息时使用)
	 * 
	 * @param loginName 登录用户名(外部用户自动生成用户信息时使用)
	 */
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	/**
	 * 获取绑定的手机号码
	 * 
	 * @return mobile 绑定的手机号码
	 */
	public String getMobile() {
		return mobile;
	}
  	
	/**
	 * 设置绑定的手机号码
	 * 
	 * @param mobile 绑定的手机号码
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * 获取密码
	 * 
	 * @return password 密码
	 */
	public String getPassword() {
		return password;
	}
  	
	/**
	 * 设置密码
	 * 
	 * @param password 密码
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * 获取昵称
	 * 
	 * @return nickName 昵称
	 */
	public String getNickName() {
		return nickName;
	}
  	
	/**
	 * 设置昵称
	 * 
	 * @param nickName 昵称
	 */
	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	/**
	 * 获取头像地址
	 * 
	 * @return headImg 头像地址
	 */
	public String getHeadImg() {
		return headImg;
	}
  	
	/**
	 * 设置头像地址
	 * 
	 * @param headImg 头像地址
	 */
	public void setHeadImg(String headImg) {
		this.headImg = headImg;
	}

	/**
	 * 获取
	 * 
	 * @return headLevel 
	 */
	public Integer getHeadLevel() {
		return headLevel;
	}
  	
	/**
	 * 设置
	 * 
	 * @param headLevel 
	 */
	public void setHeadLevel(Integer headLevel) {
		this.headLevel = headLevel;
	}

	/**
	 * 获取真实姓名
	 * 
	 * @return realName 真实姓名
	 */
	public String getRealName() {
		return realName;
	}
  	
	/**
	 * 设置真实姓名
	 * 
	 * @param realName 真实姓名
	 */
	public void setRealName(String realName) {
		this.realName = realName;
	}

	/**
	 * 获取[枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE
	 * 
	 * @return gender [枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE
	 */
	public MemberGender getGender() {
		return gender;
	}
  	
	/**
	 * 设置[枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE
	 * 
	 * @param gender [枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE
	 */
	public void setGender(MemberGender gender) {
		this.gender = gender;
	}

	/**
	 * 获取
	 * 
	 * @return birthDate 
	 */
	public LocalDate getBirthDate() {
		return birthDate;
	}
  	
	/**
	 * 设置
	 * 
	 * @param birthDate 
	 */
	public void setBirthDate(LocalDate birthDate) {
		this.birthDate = birthDate;
	}

	/**
	 * 获取年龄段
	 * 
	 * @return ageGroup 年龄段
	 */
	public String getAgeGroup() {
		return ageGroup;
	}
  	
	/**
	 * 设置年龄段
	 * 
	 * @param ageGroup 年龄段
	 */
	public void setAgeGroup(String ageGroup) {
		this.ageGroup = ageGroup;
	}

	/**
	 * 获取[枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ
	 * 
	 * @return source [枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ
	 */
	public MemberSource getSource() {
		return source;
	}
  	
	/**
	 * 设置[枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ
	 * 
	 * @param source [枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ
	 */
	public void setSource(MemberSource source) {
		this.source = source;
	}

	/**
	 * 获取[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @return status [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public MemberStatus getStatus() {
		return status;
	}
  	
	/**
	 * 设置[枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 * 
	 * @param status [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED
	 */
	public void setStatus(MemberStatus status) {
		this.status = status;
	}

	/**
	 * 获取签名
	 * 
	 * @return signature 签名
	 */
	public String getSignature() {
		return signature;
	}
  	
	/**
	 * 设置签名
	 * 
	 * @param signature 签名
	 */
	public void setSignature(String signature) {
		this.signature = signature;
	}

	/**
	 * 获取城市编码
	 * 
	 * @return cityCode 城市编码
	 */
	public String getCityCode() {
		return cityCode;
	}
  	
	/**
	 * 设置城市编码
	 * 
	 * @param cityCode 城市编码
	 */
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}

	/**
	 * 获取地址
	 * 
	 * @return address 地址
	 */
	public String getAddress() {
		return address;
	}
  	
	/**
	 * 设置地址
	 * 
	 * @param address 地址
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * 获取极光推送用户ID
	 * 
	 * @return jpushRegId 极光推送用户ID
	 */
	public String getJpushRegId() {
		return jpushRegId;
	}
  	
	/**
	 * 设置极光推送用户ID
	 * 
	 * @param jpushRegId 极光推送用户ID
	 */
	public void setJpushRegId(String jpushRegId) {
		this.jpushRegId = jpushRegId;
	}

	/**
	 * 获取
	 * 
	 * @return createdTime 
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdTime 
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取
	 * 
	 * @return createdBy 
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param createdBy 
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedTime 
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedTime 
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取
	 * 
	 * @return modifiedBy 
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param modifiedBy 
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取
	 * 
	 * @return delBy 
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delBy 
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取
	 * 
	 * @return delTime 
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置
	 * 
	 * @param delTime 
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("MemberEntity{").
			append("id=").append(id).
			append(",loginName=").append(loginName).
			append(",mobile=").append(mobile).
			append(",password=").append(password).
			append(",nickName=").append(nickName).
			append(",headImg=").append(headImg).
			append(",headLevel=").append(headLevel).
			append(",realName=").append(realName).
			append(",gender=").append(gender).
			append(",birthDate=").append(birthDate).
			append(",ageGroup=").append(ageGroup).
			append(",source=").append(source).
			append(",status=").append(status).
			append(",signature=").append(signature).
			append(",cityCode=").append(cityCode).
			append(",address=").append(address).
			append(",jpushRegId=").append(jpushRegId).
			append(",createdTime=").append(createdTime).
			append(",createdBy=").append(createdBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public MemberEntity copy() {
		return new MemberEntity(this);
	}

    /**  */
	public static final String COL_ID = "id";

    /** 登录用户名(外部用户自动生成用户信息时使用) */
	public static final String COL_LOGIN_NAME = "login_name";

    /** 绑定的手机号码 */
	public static final String COL_MOBILE = "mobile";

    /** 密码 */
	public static final String COL_PASSWORD = "password";

    /** 昵称 */
	public static final String COL_NICK_NAME = "nick_name";

    /** 头像地址 */
	public static final String COL_HEAD_IMG = "head_img";

    /**  */
	public static final String COL_HEAD_LEVEL = "head_level";

    /** 真实姓名 */
	public static final String COL_REAL_NAME = "real_name";

    /** [枚举]性别：0-未知-UNKNOWN、1-男-MALE、2-女-FEMALE */
	public static final String COL_GENDER = "gender";

    /**  */
	public static final String COL_BIRTH_DATE = "birth_date";

    /** 年龄段 */
	public static final String COL_AGE_GROUP = "age_group";

    /** [枚举]来源：1-微信-WECHAT、2-安卓-ANDROID、3-IOS-IOS、4-小程序-MINI、5-网页-WEB、6-后台导入-CRM、7-大大工匠导入-DDGJ */
	public static final String COL_SOURCE = "source";

    /** [枚举]状态：0-未激活-INACTIVE、1-已启用-ENABLED、2-禁用-DISABLED */
	public static final String COL_STATUS = "status";

    /** 签名 */
	public static final String COL_SIGNATURE = "signature";

    /** 城市编码 */
	public static final String COL_CITY_CODE = "city_code";

    /** 地址 */
	public static final String COL_ADDRESS = "address";

    /** 极光推送用户ID */
	public static final String COL_JPUSH_REG_ID = "jpush_reg_id";

    /**  */
	public static final String COL_CREATED_TIME = "created_time";

    /**  */
	public static final String COL_CREATED_BY = "created_by";

    /**  */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /**  */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /**  */
	public static final String COL_DEL_BY = "del_by";

    /**  */
	public static final String COL_DEL_TIME = "del_time";
}
